/**
 * 防抖函数
 * @param {function} fn 防抖的目标函数
 * @param {number} t 函数执行前的等待时间
 * @description
 * @author 彭庆楠
 * @date 2023-08-16 15:32:18
 * @version V1.0.0
 */
function debounce(fn, t) {
  let timer = null;
  return function () {
    if (timer !== null) {
      clearTimeout(timer);
    }
    timer = setTimeout(() => {
      fn.call(this);
    }, t);
  };
}

/**
 * @functionName 节流函数
 * @param {function} fn 节流的目标函数
 * @param {number} t 函数执行前的等待时间
 * @description
 * @author 彭庆楠
 * @date 2023-08-16 16:06:54
 * @version V1.0.0
 */
function throttle(fn, t) {
  let timer = true;
  return function () {
    if (timer) {
      setTimeout(() => {
        fn.call(this);
        timer = true;
      }, t);
    }
    timer = false;
  };
}
var iptValue = document.getElementById("ipt");
var logins = document.getElementById("login");
console.log("开始");
iptValue.addEventListener(
  "keyup",
  debounce(function () {
    console.log("防抖成功");
  }, 1000)
);

logins.addEventListener(
  "click",
  throttle(function () {
    console.log("节流成功");
  }, 1000)
);
